iT邦幫忙

2023 iThome 鐵人賽

DAY 16
0

3A Pattern (Arrange Act Assert)

補充一下前面沒提過的 3A Pattern

  • Arrange:初始化測試的對象
  • Act:執行測試內容
  • Assert:確認結果

TDD

Test-driven development測試驅動開發。是一種開發流程,觀念是「先寫測試,在進入開發工作」。在進行開發工作以前,編寫測試,預先模擬欲測試的情境

所以怎麼進行 TDD ?

  • step 1 : 確定好需求,列出Test Case.

  • step 2 : 開始寫 function ,並讓測試全數通過

  • step 3 : 釐清邏輯並重構 function 看能不能讓效能再優化

有沒有覺得很熟悉,step2 跟 step 3 很像是在寫 leetcode 會出現的畫面,其實 TDD 就像是幫自己出一題 leetCode 讓自己的程式碼通過所有測試達到穩定的狀態。

按照 TDD 流程,假如我今天要做一個判斷密碼格式的 function ,那我的流程應該是

  • 確認密碼格式的需求 (至少一大寫 、需要特殊符號等…)
  • 開始寫 code ,並執行測試,發現有 failed 就回去修改 function
  • 確定所有 case 都通過後,重新檢視一下有沒有哪裡可以優化或重複的程式碼

我覺得寫測試跟學英文很像,一開始讀英文可能是為了考試,但後來會認知到學英文最主要是為了溝通與取得資訊,寫測試也一樣,我們並非是為了測試而測試,是為了開發才寫測試的。

補充一下 TDD 的好處,由於整個過程很像在解題,在通過測試的時候就會出現一種莫名的成就感,反而會讓開發流程變得更爽 (斗M?


上一篇
Day 15 - 關於 testing scoping 與狀態清除
下一篇
Day 17 - TDD part 2 : Functional Programing
系列文
React Clean Code And Unit Tests - 利用測試寫出人類看得懂的React程式30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言